jackbocar

  • Site web
  • Nombre de sujets
    152
  • Nombre de messages
    456
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

jackbocar
le 07/05/2007 à 10:18
Manque toujours la première donnée
Bonjour,

Qui peux me dire pourquoi avec ces différents scripts SELECT :
//mysqli_fetch_assoc - //mysqli_fetch_array - //mysqli_fetch_row ;
Le seul qui me sort l'intégralité des données est : "mysqli_fetch_object" ?

Avec les autres, il me manque systématiquement le premier enregistrement, voir le dernier aussi.

Lorsque j'ai qu'une seule donnée, la page est vide.

Et pour mes liens en 'PHP_SELF' :
<?php
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=encyclo_A#'.stripslashes(htmlentities(trim($data['id']))).'" class="menuNav">'.stripslashes(htmlentities(trim($data['nom']))).'</a><br />';
?>


Le script qui fonctionne très bien et qui est ( MYSQLI_FETCH_OBJET) placé dans mes liens est inexploitable…

<?php
$link = mysqli_connect("localhost", "user", "password", "base");

if (mysqli_connect_errno()) {
printf("?chec de la connexion : %s\n", mysqli_connect_error());
exit();
}
//mysqli_fetch_object
$query = "SELECT nom, code_post FROM Ville";
if ($result = mysqli_query($link, $query)) {

while ($obj = mysqli_fetch_object($result)) {
printf ("%s (%s)\n", $obj->nom, $obj->code_post);
}
mysqli_free_result($result);
}
mysqli_close($link);
?>



J'ai essayé des tas de combinaisons, le résultat est décevant.

Mon code complet :

<?php
$link = mysqli_connect("localhost", "user", "password", "base");

if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}

$query = 'SELECT id, nom, nom_lien, news FROM encyclo WHERE nom REGEXP "^A" ORDER BY nom ASC';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$data = mysqli_fetch_array($result);


while ($data = mysqli_fetch_array($result)) {
$id=$data['id'];
$nom=$data['nom'];
$nom_lien=$data['nom_lien'];
$news=$data['news'];
$news = nl2br($news);

echo '<a name="'.stripslashes(htmlentities(trim($data['id']))).'"></a>';
echo '<p class="p">';
echo'<a href="../encyclo_pages/'. stripslashes(htmlentities(trim($data['nom']))).'" class="Lnav">'stripslashes(htmlentities(trim($data['nom_lien'])))'</a> &nbsp;';
echo '<span class="com">'. stripslashes(htmlentities(trim($data['news']))).'</span><br />';
echo '<br /><a href="#" class="Lnav">Top</a><br /><br />';
echo '</p>';
}
}
mysqli_free_result($result);

echo '</div>';
echo '<div id="sidebar" class="column"><div class="menuBarTop">Commanderies [A]</div>';

//Ci-dessous le menu

$query = 'SELECT id, nom FROM enclyclo WHERE nom REGEXP "^A" ORDER BY nom ASC';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$data = mysqli_fetch_array($result);

while ($data = mysqli_fetch_array($result)) {
$id=$data['id'];
$nom=$data['nom'];

echo '<a href="'.$_SERVER['PHP_SELF'].'?page=encyclo_A#'.stripslashes(htmlentities(trim($data['id']))).'" class="menuNav">'.stripslashes(htmlentities(trim($data['nom']))).'</a><br />';
}
}
mysqli_free_result($result);
mysqli_close($link);
?>



Merci de votre aide

Jack Bocar
jackbocar
le 03/05/2007 à 08:44
Syntaxe MYSQLI
Bonjour,

Je ne suis pas un professionnel de la programmation PHP5, mais je crois que le MYSQLI est un nouveau codage de sécurité qui fonctionne avec PHP5, regarde la différence de connexion à la base de données, tes informations sont cryptées plus sérieusement. La méthode d'encryptage des mots de passe MySQL a changé, il n'est donc plus possible d'utiliser directement l'extension mysql

Connexion MYSQLI et PHP5

<?php
$link = mysqli_connect("localhost", "login", " password", "base");

if (!$link) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}

mysqli_close($link);
?>


Et la connexion MYSQL et PHP4

<?php
$link = mysql_connect ('localhost', 'login', 'password');
mysql_select_db ('base', $link);

mysql_close($link);
?>


Je ne sais pas si cette explication est claire, mais je ne peux pas en dire plus.

Pose la question à Laglobulle, il sera mieux que moi t'expliquer.

Jack Bocar
jackbocar
le 03/05/2007 à 08:26
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour,

Tout simplement, c'est mes premiers pas dans le codage MSYQLI, et lorsque je vais chercher des informations sur le site : http://fr.php.net/manual/fr/function.mysqli-fetch-row.php

J'y trouve ceci :

<?php
$query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";
if ($result = mysqli_query($link, $query)) {
while ($row = mysqli_fetch_row($result)) {
printf ("%s (%s)\n", $row[0], $row[1]);
}

mysqli_free_result($result);
}

mysqli_close($link);
?>


Donc, je travail sur cette base, ensuite, je recherche dans mes livres sur PHP5 et je modifie les tableaux avec d'autres exemples :

<?php else {
while ($row = mysqli_fetch_assoc($result)) {
$date = $row['date'];
$url = $row['url'];
$titre = $row['titre'];
$news = nl2br($row['news']);
$jour = substr($date, 8, 2);
$mois = substr($date, 5, 2);
$annee = substr($date, 0,4);
$date = $jour. '-' .$mois. '-' .$annee;
echo "<table border='0' width='100%' cellpadding='0' cellspacing='0' style='border: solid; border-color: black; border-width: 1px'><tr><td width='100%'>";
echo "<table border='0' width='100%' cellpadding='0' cellspacing='0'>";
echo "<tr>";
echo "<td width='20%' style='border-bottom: solid; border-bottom-color: black; border-bottom-width: 1px; border-right: solid; border-right-color: black; border-right-width: 1px'> &nbsp; $date</td>";
echo "<td width='80%' style='border-bottom: solid; border-bottom-color: black; border-bottom-width: 1px'><a href=$url class=Lnav> &nbsp; $titre</a></td>";
echo "</tr></table><table border='0' width='100%' cellpadding='0' cellspacing='0'><tr>";
echo "<td width='100%' style='font-family: Arial; font-size: 12pt'>$news</td>";
echo "</tr></table></td></tr></table>";
echo "<br />";
?>


Ce n'est peut-être pas la bonne solution, si tu as un exemple plus académique à me donner, je prends.

J'avoue que j'ai eu du mal à trouver une vraie bonne solution.
Par contre, je trouve que les
<?php printf ("%s %s\n", $row[0], $row[1]); ?>

Sont très pratiques et simple d'utilisation. Mais, je n'ai pas trouvé comment l'utiliser dans un tableau ou dans des DIV jumelée avec des ECHO.

Jack Bocar
jackbocar
le 02/05/2007 à 14:16
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour et bravo,

Tu es génial La globule, ça fonctionne maintenant.

Seul problème, l'affichage. Je n'arrive pas à faire plus simple dans ma table entre mes printf et mes echo …

Voici le script terminé est qui est fonctionnel pour celui qui a ou aura les mêmes problèmes que j'ai rencontrés.


<?php

include ('./connect_db.php');
//include ('./functions_pagination.php');

$nb_affichage_par_page = 55;
$query = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);

if (($nbtotal = $row[0]) == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$query = 'SELECT id, date, titre, url, news, type FROM news ORDER BY date ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);


if ($nbtotal == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
while ($row = mysqli_fetch_assoc($result)) {
echo '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td width="30%">';
printf ("%s", $row['date']);
echo '</td>';
echo '<td width="70%"><a href="';
printf ("%s", $row['url']);
echo '" class="Lnav">';
printf ("%s", $row['titre']); echo '</a>';
echo '</td>';
echo '</tr></table><table border="0" width="100%" cellpadding="0" cellspacing="0"><tr>';
echo '<td width="100%">';
printf ("%s", $row["news"]);
echo '</td>';
echo '</tr></table>';
echo '<br />';
}
}
}
echo '<table border="0" cellspacing="0" cellpadding="1" align="right" valign="top"><tr><td align="right" valign="top">';
$barre_nav = barre_navigation($nbtotal, $nb_affichage_par_page, $_GET['debut'], '5', 'index.php');
echo '<span class="texte_normal"><b>'.$barre_nav.'</b></span>';
echo '</td></tr></table>';
}
mysqli_free_result($result);
}
mysqli_close($link);
?>
jackbocar
le 02/05/2007 à 08:52
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour,

Merci de ta réponse, j'ai fais les changements, mais rien ne change, toujours une seule et la dernière des news s'affiche...


<?php

include ('./_require/connect_db.php');
include ('./_require/functions.php');

$nb_affichage_par_page = 25;
$query = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$enr = mysqli_fetch_array($result);

if (($nbtotal = $enr[0]) == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$query = 'SELECT id, date, titre, url, news, type FROM news ORDER BY date ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {
$enr = mysqli_fetch_array($result);


if ($nbtotal == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
$enr = mysqli_fetch_array($result, MYSQLI_ASSOC);
//while ($enr = mysqli_fetch_row($result)) {

$news = nl2br($news);

echo '<br />';
printf ("%s %s %s %s)\n", $enr["date"], $enr["titre"], $enr["url"], $enr["news"]);
}
}
}
//}
mysqli_free_result($result);
}
mysqli_close($link);
?>


Jack Bocar
jackbocar
le 02/05/2007 à 06:50
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour

Un petit éclaircissement :

1 - comme ceci, il ne trouve aucune news, alors qu'il y en a 123.


<?php
include ('./_require/connect_db.php');
include ('./_require/functions.php');

$nb_affichage_par_page = 5;
$sql = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {

if (($nbtotal = $enr[0]) == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$query = 'SELECT id, date, titre, url, news, type FROM news ORDER BY date ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {

if ($nbenr == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
else {
//$data = mysqli_fetch_array($result, MYSQLI_ASSOC);
while ($data = mysqli_fetch_row($result)) {
$news = nl2br($news);

echo '<br />';
printf ("%s", $date=$data['date']);
echo '<br />';
echo '<table border="0" width="98%" cellpadding="0" cellspacing="0" id="news"><tr>';
echo '<td id="titre-news"><a href="';
printf ("%s", $url=$data['url']);
echo '" class="nav" target="_blank">';
printf ("%s", $url=$data['titre']);
echo '</a></td>';
echo '</tr><tr>';
echo '<td id="texte-news" style="border-top: solid 1px #CCCCCC">';
printf ("%s", $url=$data['news']);
echo '</td>';
echo '</tr></table>';
echo '<br />';
}
}
}
}
mysqli_free_result($result);
}
mysqli_close($link);
?>



2 - Comme ceci, je n'affiche que la dernière news, il y en a 123.

<?php
include ('./_require/connect_db.php');
include ('./_require/functions.php');

$nb_affichage_par_page = 5;
$sql = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);
//if ($result = mysqli_query($link, $query)) {

//if (($nbtotal = $enr[0]) == 0) {
//echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
//}
//else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$query = 'SELECT id, date, titre, url, news FROM news ORDER BY date ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {

//if ($nbenr == 0) {
//echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
//}
//else {
$data = mysqli_fetch_array($result, MYSQLI_ASSOC);
//while ($data = mysqli_fetch_row($result)) {
$news = nl2br($news);

echo '<br />';
printf ("%s", $date=$data['date']);
echo '<br />';
echo '<table border="0" width="98%" cellpadding="0" cellspacing="0" id="news"><tr>';
echo '<td id="titre-news"><a href="';
printf ("%s", $url=$data['url']);
echo '" class="nav" target="_blank">';
printf ("%s", $url=$data['titre']);
echo '</a></td>';
echo '</tr><tr>';
echo '<td id="texte-news" style="border-top: solid 1px #CCCCCC">';
printf ("%s", $url=$data['news']);
echo '</td>';
echo '</tr></table>';
echo '<br />';
}
//}
//}
//}
mysqli_free_result($result);
//}
mysqli_close($link);
?>


3 - Comme ceci, je n'affiche que la première, il y a 12 news enregistrée avec ce type="news"

<?php

include ('./_require/connect_db.php');
include ('./_require/functions.php');

$nb_affichage_par_page = 5;
$sql = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);
//if ($result = mysqli_query($link, $query)) {

//if (($nbtotal = $enr[0]) == 0) {
//echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
//}
//else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$query = 'SELECT id, date, titre, url, news, type FROM news WHERE type="news" ORDER BY date ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {

//if ($nbenr == 0) {
//echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
//}
//else {
$data = mysqli_fetch_array($result, MYSQLI_ASSOC);
//while ($data = mysqli_fetch_row($result)) {
$news = nl2br($news);

echo '<br />';
printf ("%s", $date=$data['date']);
echo '<br />';
echo '<table border="0" width="98%" cellpadding="0" cellspacing="0" id="news"><tr>';
echo '<td id="titre-news"><a href="';
printf ("%s", $url=$data['url']);
echo '" class="nav" target="_blank">';
printf ("%s", $url=$data['titre']);
echo '</a></td>';
echo '</tr><tr>';
echo '<td id="texte-news" style="border-top: solid 1px #CCCCCC">';
printf ("%s", $url=$data['news']);
echo '</td>';
echo '</tr></table>';
echo '<br />';
}
//}
//}
//}
mysqli_free_result($result);
//}
mysqli_close($link);
?>


Merci de vos conseils

Jack Bocar
jackbocar
le 02/05/2007 à 05:33
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour

J'essais d'être plus clair. La partie du script qui compte le nombre de news pour afficher que ce nombre, ne fonctionne pas. Plutôt, je ne parviens pas à modifier cette partie pour MYSQLI.

<?php
/*------------------- Mon problème est que je n'arrive pas à modifier cette partie de script : --------*/
include ('./_require/connect_db.php');
include ('./_require/fonction_pagination.php');

$nb_affichage_par_page = 4;
$sql = 'SELECT count(*) FROM news';
$result = mysqli_query($link, $query);

//$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
//$data = mysql_fetch_array($resultat);

if (($nbtotal = $data[0]) == 0) {
echo '<span class="texte_normal"><b>Aucune news trouv&eacute;e.</b></span>';
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

/*------------------------- ci dessou le script modifié MYSQLI fonctionne bien mais sans pagination ------------------------------------------------*/

$query = 'SELECT id, date, titre, url, news, type FROM news WHERE type="news" ORDER BY id ASC LIMIT 0,5 ';
$result = mysqli_query($link, $query);
if ($result = mysqli_query($link, $query)) {

if ($nbenr == 0) {
echo '<span class="texte_normal"><b>Aucune news trouvée.</b></span>';
}
while ($data = mysqli_fetch_assoc($result)) {
$date=$data['date'];
$url=$data['url'];
$titre=$data['titre'];
$news=$data['news'];
$news = nl2br($news);

echo '<span class="titre">'($titre)' <a href="#">'($url)'</a></span>';
echo '<br /><br />';
echo '<span class="news">'($news)'</span>';
?>


Tu vois, normalement il y a en fin de ligne SELECT (21) :
$query = 'SELECT id, date, titre, url, news, type FROM news WHERE type="news" ORDER BY id ASC LIMIT .$_GET['debut'].','.$nb_affichage_par_page;

Mais je ne m'en sers pas vu que le script qui compte les news, ne fonctionne pas en PHP5 et MYSQLI.

J'espère que je me suis fais comprendre, ce n'est pas simple quelquefois de s'expliquer !!!

Jack Bocar
jackbocar
le 01/05/2007 à 19:50
Modifier un script PHP4 en PHP5 MYSQLI
Bonjour,

J'ai un script qui était à l'origine "Danews". Il fonctionne parfaitement bien, mais j'aimerais pouvoir le faire fonctionner en PHP5 et MYSQLI. Sauf que j'ai essayé de multiples combinaisons sans aucun résultats. Je bloque sur les SELECT count (*), ce qui rend inefficace ma pagination.

Si vous êtes dans un bon jour, peut-être ferez-vous la modif pour moi ou me diriger pour enfin y arriver.

Le code :

<?php
$nb_affichage_par_page = 4;
$sql = 'SELECT count(*) FROM news';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($resultat);

if (($nbtotal = $data[0]) == 0) {
echo '<span class="texte_normal"><b>Aucune news trouv&eacute;e.</b></span>';
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$sql = 'SELECT id, date, titre, news FROM news ORDER BY date DESC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbdata = mysql_num_rows($resultat);

if ($nbdata == 0) {
echo '<span class="texte_normal"><b>Aucune news trouv&eacute;e.</b></span>';
}
else {
while ($data = mysql_fetch_array($resultat)) {
$date=$data['date'];
$titre=$data['titre'];
$news=$data['news'];
?>


Merci de votre aide

Jack Bocar
jackbocar
le 01/05/2007 à 19:43
Syntaxe MYSQLI
Bonjour

Merci de tes conseils pour les BBcodes. Effectivement, je ne m'en suis jamais servi. Je ne sais pas comment ça fonctionne.

En tout cas, tu as raison, ça fonctionne très bien avec les echo '';.

<?php echo '<li><a href="'"%s", $url=$enr["url"] 'class=menuNav target=_blank>'"%s", $url=$enr['titre']'</a></li>';  php ?>


J'espère que les BBcodes fonctionnent avec mon peu de connaissance !!!

Jack Bocar
jackbocar
le 01/05/2007 à 16:38
Syntaxe MYSQLI
Bonjour,

Auriez-vous une idée pour faire que ces lignes MYSQLI PHP5 soient sur une seule ligne comme ce model ci-dessous pour PHP4 :

<?php
echo '<li><a href="', stripslashes(htmlentities(trim($data['url']))) ,' class="menuNav" target="_blank"> ', stripslashes(htmlentities(trim($data['nom']))) ,'</a></li>';
?>



<?php
include ('./_require/connect_db.php');

$query = 'SELECT id, url, titre FROM news WHERE type="club" ORDER BY id ASC';
if ($result = mysqli_query($link, $query)) {

while ($data = mysqli_fetch_assoc($result)) {
//printf ("%s %s", $url=$data['url'], $titre=$data['titre']); //original MYSQLI

printf ("<li><a href=");
printf ("%s", $url=$data['url']);
printf (" class=menuNav target=_blank>");
printf ("%s", $url=$data['titre']);
printf ("</a></li>");

}
mysqli_free_result($result);
}
mysqli_close($link);
?>


Merci de votre aide

Jack Bocar
LoadingChargement en cours