easyphp

Petit nouveau ! | 2 Messages

18 juil. 2011, 10:47

Bonjour à tous ,

J'ai remplacé easyphp 1-7 par 5-3 . Mes requêtes ne fonctionnent plus :
$Hote = "127.0.0.1";
$Utilisateur = "root";
$MotDePasse = "";
$NomBase = "base1";
$NomTable = "cors1";

$Lien = mysql_connect ($Hote, $Utilisateur, $MotDePasse);

$Requete = "SELECT Nomcors,idcors1, prenom, surnom, Port_origine, Epoque, Naissance, Décès, Bateaux, Nationalité , Référence_biblio from $NomTable WHERE(nomcors LIKE'%$corsaire%')LIMIT 100";
$Resultat = mysql_select_db ($Lien,$NomBase,$Requete);

Message d'erreur : Notice: Undefined index: corsaire in C:\Program Files\EasyPHP-5.3.6.1\www\projet1\bdcorsair\agcors.php3 on line 11
Merci d'avance pour un avis
Nielas

Warning: mysql_select_db() expects at most 2 parameters, 3 given in C:\Program Files\EasyPHP-5.3.6.1\www\projet1\bdcorsair\agcors.php3 on line 26

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\Program Files\EasyPHP-5.3.6.1\www\projet1\bdcorsair\agcors.php3 on line 46

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 juil. 2011, 11:11

A partir des version 5.2 et 5.3 de php, certains paramétrages par défaut ont changé, ce qui peut faire apparaitre des message d'avertissement ou des erreurs... le mieux étant bien sur de corriger le code plutôt que la conf du serveur vu que l'on a pas toujours la main dessus :)

A la ligne 11 tu as un avertissement car tu fais appel à l'index d'un tableau nommé "corsaire" alors que celui-ci n'est pas défini. En général ceci arrive quand tu tentes de récupérer un $_POST ou un $_GET sans t'assurer au préalable que cette variable existait :
if (isSet($_POST['corsaire']))
   ... // alors je peux utiliser la variable $_POST['corsaire']
Tu as ensuite un problème de sélection de base de donnée, mais c'est un problème que tu devais déjà avoir avant car la fonction mysql_select_db n'accepte au plus que deux paramètre et tu lui en passes 3. Il ne faut pas lui passer de requête, mais uniquement le nom de la base et le lien de connexion (et dans le bon ordre !! > vérifier la doc de la fonction ;))

Les requêtes s'exécutent ensuite avec mysql_query().

Pour le fetch_array, le problème devrait être résolu une fois que la requête aura été correctement exécutée :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

19 juil. 2011, 11:18

Merci pour ta réponse je vais tenter de corriger cela pour mysql_select_db auparavant cela fonctionnait avec mysql_connect et trois paramètres j'ai changé car on me dit que mysql_connect est périmé.
Cordialemnt
Nielas

Petit nouveau ! | 2 Messages

19 juil. 2011, 12:03

Cela a fonctionné il ne me reste plus qu'un défaut : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.6.1\www\projet1\bdcorsair\agcors.php3 on line 46

en ligne 46 : while ($ligne = mysql_fetch_array($Resultat))
{ print ("<TR ALIGN=CENTER VALIGN=TOP>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[prenom] $ligne[Nomcors] $ligne[idcors1]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[surnom]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Port_origine]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Epoque]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Naissance]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Décès]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Bateaux]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='1' face='Arial'color='#FFFFFF'>$ligne[Nationalité]</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP><font size='2' face='Arial'color='#FFFFFF'>$ligne[Référence_biblio]</TD>\n");
print ("</TR>\n");
Merci d'avance
Nielas

ViPHP
xTG
ViPHP | 7331 Messages

19 juil. 2011, 12:49

Cela signifie que $Resultat n'est pas une ressource valide.
Si tu debug ta requête tu devrais à mon avis avoir une erreur. ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juil. 2011, 15:35

on me dit que mysql_connect est périmé
Bah.. euh... non... c'est la seule façon de se connecter à une base mysql en php (hors connexion permanente), donc c'est pas près d'être déprécié... Au mieux tu peux utiliser PDO pour uniformiser tes appels à la base et limiter la dépendance au moteur de base de données, mais ça se passera quand même avec un mysql_connect pour se connecter à du MySQL ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
xTG
ViPHP | 7331 Messages

19 juil. 2011, 17:06

on me dit que mysql_connect est périmé
Bah.. euh... non... c'est la seule façon de se connecter à une base mysql en php (hors connexion permanente), donc c'est pas près d'être déprécié... Au mieux tu peux utiliser PDO pour uniformiser tes appels à la base et limiter la dépendance au moteur de base de données, mais ça se passera quand même avec un mysql_connect pour se connecter à du MySQL ;)
Non cela utilisera mysqli il me semble. ;)

Mammouth du PHP | 2278 Messages

20 juil. 2011, 18:37

Hors de propos mais pouvant servir
print "<br>==>Requete<==" ; // les ==><== pour bien isoler la requête
die();
et recopier la requete dans easyphp, ça peut aider à s'y retrouver.

A propos:
il y a toujours eu un mysql_connect à 3 paramètres et un mysql_db_select n' a jamais accepté de requete....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD